package cn.neusoft.controller;

import cn.neusoft.vo.ResultBean;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.UUID;

@Controller
public class UploadController {

    /*
    MultipartFile 将上传上来的文件封装成这个类型
     */
    @ResponseBody
    @RequestMapping("/upload")
    // 必须要有MultipartFile类型参数。而且参数名必须与表单file控件名一致
    public ResultBean upload(MultipartFile myFile) {
        //上传图片存储目录
        String path = "d:/upload1118";
        //获取文件名并使用UUID生成新文件名     73482hdksakd398aa.png
        String fileName = myFile.getOriginalFilename();
        String newFileName = UUID.randomUUID().toString().replaceAll("-","") + fileName;
        //在指定上传图片存储目录中创建新文件    d:/upload1118/73482hdksakd398aa.png
        File targetFile = new File(path, newFileName);
        //如果找不到指定目录和文件，就新创建此目录和文件
        if (!targetFile.getParentFile().exists()) {
            targetFile.getParentFile().mkdirs();
        }
        //将文件写入硬盘（myFile在内存中）
        try {
            myFile.transferTo(targetFile); //复制文件
            //http://localhost:8080/img/+newFileName
            String imgUrl = "http://localhost:8080/img/"+newFileName;
            return ResultBean.SUCCESS(imgUrl);
        } catch (Exception e) {
            e.printStackTrace();
            return ResultBean.ERROR(e.getMessage());
        }
    }
}